package com.tepth.remote.control.base.map.overlay;

import android.graphics.Color;

import com.baidu.mapapi.map.CircleOptions;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.map.PolygonOptions;
import com.baidu.mapapi.map.PolylineOptions;
import com.baidu.mapapi.map.Stroke;
import com.baidu.mapapi.model.LatLng;

import java.util.ArrayList;

/**
 * Description:
 *
 * @author Hequn.Lee
 * @date 2018/11/21
 */
public class DrawOverlay {

    private static final int MIN_POLYGON_COUNT = 3;
    private static final int MIN_POLYLINE_COUNT = 2;

    /**
     * 画圆
     *
     * @param center 圆心
     * @param radius 半径
     * @return 圆形覆盖物
     */
    public static OverlayOptions drawCircle(LatLng center, int radius) {
        // 判空
        if (center == null) {
            return null;
        }
        if (radius > 0) {
            // 定义一个覆盖物基类,画一个圆 //设置圆心
            return new CircleOptions().center(center)
                    // 设置半径 //设置边框
                    .radius(radius).stroke(new Stroke(5, 0xAA00FF00))
                    // 设置填充
                    .fillColor(Color.argb(50, 0, 50, 0)).zIndex(1);
        }
        return null;
    }

    /**
     * 画多边形
     *
     * @param list 曲线路径坐标点集合
     * @return 多边形覆盖物
     */
    public static OverlayOptions drawPolygon(ArrayList<LatLng> list) {
        // 判空
        if (list == null || list.isEmpty() || list.size() < MIN_POLYGON_COUNT) {
            return null;
        }
        // 定义一个覆盖物基类
        return new PolygonOptions().points(list)
                //设置边框
                .stroke(new Stroke(5, 0xAA0000FF))
                .fillColor(Color.argb(50, 0, 0, 50)).zIndex(1);
    }

    /**
     * 画折线
     *
     * @param list 折线路径坐标点集合
     * @return 折线覆盖物
     */
    public static OverlayOptions drawPolyline(ArrayList<LatLng> list) {
        // 判空
        if (list == null || list.isEmpty() || list.size() < MIN_POLYLINE_COUNT) {
            return null;
        }
        // 定义一个覆盖物基类
        return new PolylineOptions().width(5)
                // 線的顏色
                .color(0xAAFF0000).points(list).zIndex(1);
    }
}
